$(function () {
    $('#user').datagrid({
        url : UU['APP_PATH'] + 'user/getList',
        fit : true,
        pagination : true,
        pageSize : 20,
        pageList : [10, 20, 30, 40, 50],
        pageNumber : 1,
        sortName : 'create_time',
        sortOrder : 'DESC',
        fitColumns : true,
        striped : true,
        rownumbers : true,
        border : false,
        toolbar : '#user_tool',
        columns : [[
            {
                field : 'id',
                title : '编号',
                width : 100,
                checkbox : true
            },
            {
                field : 'username',
                title : '用户名',
                width : 100
            },
            {
                field : 'nick_name',
                title : '昵称',
                width : 100
            },
            {
                field : 'level',
                title : '级别',
                width : 50
            },
            {
                field : 'phone',
                title : '电话',
                width : 100
            },
            {
                field : 'email',
                title : '电子邮件',
                width : 100
            },
            {
                field : 'create_time',
                title : '注册时间',
                width : 100,
                sortable : true
            },
            {
                field : 'last_login_time',
                title : '最后登录时间',
                width : 100,
                sortable : true
            },
            {
                field : 'last_login_ip',
                title : '最后登录 IP',
                width : 100
            },
            {
                field : 'status',
                title : '状态',
                width : 30
            }
        ]],
    });
    $('#user_show').dialog({
        width : 350,
        height : 420,
        title : '查看用户',
        iconCls : 'icon-user',
        modal : true,
        closed : true,
        buttons : [
            {
                text : '取消',
                iconCls : 'icon-redo',
                handler : function () {
                    $('#user_show').dialog('close');
                }
            }
        ],
    });
    $('#user_add').dialog({
        width : 350,
        height : 420,
        title : '新增用户',
        iconCls : 'icon-user_add',
        modal : true,
        closed : true,
        buttons : [
            {
                text : '提交',
                iconCls : 'icon-bullet_add',
                handler : function () {
                    if ($('#user_add').form('validate')) {
                        $.ajax({
                            url : UU['APP_PATH'] + 'user/register',
                            type : 'POST',
                            data : {
                                username : $.trim($('input[name="username"]').val()),
                                password : $('input[name="password"]').val(),
                                nick_name : $('input[name="nick_name"]').val(),
                                email : $.trim($('input[name="email"]').val()),
                                sex : $("input[name='sex']:checked").val(),
                                phone : $('input[name="phone"]').val(),
                            },
                            beforeSend : function () {
                                $.messager.progress({
                                    text : '正在尝试提交...',
                                });
                            },
                            success : function(data, response, status) {
                                $.messager.progress('close');
                                if (data > 0) {
                                    $.messager.show({
                                        title : '操作提醒',
                                        msg : '新增用户成功！',
                                    });
                                    $('#user_add').dialog('close');
                                    $('#user').datagrid('load');
                                } else if (data == -2) {
                                    $.messager.alert('警告操作', '用户帐号不得出现@等标点！', 'warning', function () {
                                        $('input[name="username"]').select();
                                    });
                                } else if (data == -8) {
                                    $.messager.alert('警告操作', '用户帐号被占用！', 'warning', function () {
                                        $('input[name="username"]').select();
                                    });
                                } else if (data == -10) {
                                    $.messager.alert('警告操作', '电子邮件被占用！', 'warning', function () {
                                        $('input[name="email"]').select();
                                    });
                                } else if (data == -1 || data == -4) {
                                    $.messager.alert('警告操作', '因某种意外导致前台验证被绕过，请重新刷新提交！', 'warning');
                                } else {
                                    $.messager.alert('警告操作', '未知错误！请重新刷新后提交！', 'warning');
                                }
                            },
                        });
                    }
                }
            },
            {
                text : '取消',
                iconCls : 'icon-redo',
                handler : function () {
                    $('#user_add').dialog('close');
                }
            }
        ],
        onClose : function () {
            $('#user_add').form('reset');
        },
    });

    $('#user_edit').dialog({
        width : 350,
        height : 420,
        title : '修改用户',
        iconCls : 'icon-user',
        modal : true,
        closed : true,
        buttons : [
            {
                text : '提交',
                iconCls : 'icon-edit',
                handler : function () {
                    if ($('#user_edit').form('validate')) {
                        $.ajax({
                            url : UU['APP_PATH'] + 'user/update',
                            type : 'POST',
                            data : {
                                id : $.trim($('input[name="edit_id"]').val()),
                                username : $.trim($('input[name="edit_username"]').val()),
                                password : $('input[name="edit_password"]').val(),
                                nick_name : $('input[name="edit_nick_name"]').val(),
                                email : $.trim($('input[name="edit_email"]').val()),
                                sex : $("input[name='edit_sex']:checked").val(),
                                phone : $('input[name="edit_phone"]').val(),
                            },
                            beforeSend : function () {
                                $.messager.progress({
                                    text : '正在尝试提交...',
                                });
                            },
                            success : function(data, response, status) {
                                $.messager.progress('close');
                                if (data > 0) {
                                    $.messager.show({
                                        title : '操作提醒',
                                        msg : '修改用户成功！',
                                    });
                                    $('#user_edit').dialog('close');
                                    $('#user').datagrid('load');
                                } else if (data == -2) {
                                    $.messager.alert('警告操作', '用户帐号不得出现@等标点！', 'warning', function () {
                                        $('input[name="edit_username"]').select();
                                    });
                                } else if (data == -19) {
                                    $.messager.alert('警告操作', '用户帐号被占用！', 'warning', function () {
                                        $('input[name="edit_username"]').select();
                                    });
                                } else if (data == -21) {
                                    $.messager.alert('警告操作', '电子邮件被占用！', 'warning', function () {
                                        $('input[name="email"]').select();
                                    });

                                } else if (data == -1 || data == -4) {
                                    $.messager.alert('警告操作', '因某种意外导致前台验证被绕过，请重新刷新提交！', 'warning');
                                } else {
                                    $.messager.alert('警告操作', '未知错误！请重新刷新后提交！', 'warning');
                                }
                            },
                        });
                    }
                }
            },
            {
                text : '取消',
                iconCls : 'icon-redo',
                handler : function () {
                    $('#user_edit').dialog('close');
                }
            }
        ],
        onClose : function () {
            $('#user_edit').form('reset');
        },
    });
    $('input[name="username"]').validatebox({
        required : true,
        validType : 'length[2,20]',
        missingMessage : '请输入用户帐号',
        invalidMessage : '用户帐号必须在2-20位之间',
    });
    $('input[name="nick_name"],input[name="edit_nick_name"]').validatebox({
        required : true,
        validType : 'length[2,20]',
        missingMessage : '请输入昵称',
        invalidMessage : '昵称必须在2-20位之间',
    });
    $('input[name="password"]').validatebox({
        required : true,
        validType : 'length[6,30]',
        missingMessage : '请输入用户密码',
        invalidMessage : '用户密码在6-30位之间',
    });

    $('input[name="edit_password"]').validatebox({
        validType : 'length[6,30]',
        missingMessage : '请输入用户密码',
        invalidMessage : '用户密码在6-30位之间',
    });

    $('input[name="email"], input[name="edit_email"]').validatebox({
        required : true,
        validType : 'email',
        missingMessage : '请输入电子邮件',
        invalidMessage : '电子邮件格式不正确',
    });
    $('input[name="phone"], input[name="edit_phone"]').validatebox({
        validType : 'phone',
    });
//扩展个性域名验证功能
    $.extend($.fn.validatebox.defaults.rules, {
        phone: {
            validator: function(value, param){
                return /^(((13[0-9]{1})|(15[0-9]{1})|(18[0-9]{1})|(17[0-9]{1})|(14[0-9]{1}))+\d{8})$/.test(value);
            },
            message: '手机号码格式不正确',
        }
    });



    user_tool = {
        setStatus:function(id,type){
            if(type==0){
                var str = '您要禁用此账号吗？';
            }else{
                var str = '您要启用此账号吗？';
            }
            $.messager.confirm('确定操作',str , function (flag) {
                if (flag) {
                    $.ajax({
                        type : 'POST',
                        url : UU['APP_PATH'] + 'user/setStatus',
                        data : {
                            type : type,
                            id:id,
                        },
                        dataType:'json',
                        beforeSend : function () {
                            $('#user').datagrid('loading');
                        },
                        success : function (data) {
                            if (data['status']==1) {
                                $('#user').datagrid('loaded');
                                $('#user').datagrid('reload');
                                $.messager.show({
                                    title : '提示',
                                    msg : '操作成功',
                                });
                            }
                        }
                    });
                }
            });

        },
        show : function (id){
            $('#user').datagrid('unselectAll');
            $('#user_show').dialog('refresh', UU['APP_PATH'] + 'user/show'+'?id='+id).dialog('open');
        },
        redo : function () {
            $('#user').datagrid('unselectAll');
        },
        remove : function () {
            var rows = $('#user').datagrid('getSelections');
            if (rows.length > 0) {
                $.messager.confirm('确定操作', '您要删除所选的<strong>' +
                    rows.length + '</strong>条记录吗？', function (flag) {
                    if (flag) {
                        var ids = [];
                        for (var i = 0; i < rows.length; i ++) {
                            ids.push(rows[i].id);
                        }
                        $.ajax({
                            type : 'POST',
                            url : UU['APP_PATH'] + 'user/remove',
                            data : {
                                ids : ids.join(','),
                            },
                            beforeSend : function () {
                                $('#user').datagrid('loading');
                            },
                            success : function (data) {
                                if (data) {
                                    $('#user').datagrid('loaded');
                                    $('#user').datagrid('reload');
                                    $('#user').datagrid('unselectAll');
                                    $.messager.show({
                                        title : '提示',
                                        msg : data + '个用户被删除成功！',
                                    });
                                }
                            }
                        });
                    }
                });
            } else {
                $.messager.alert('警告', '删除记录至少选定一条数据！',
                    'warning');
            }
        },
        search : function () {
            $('#user').datagrid('load', {
                username : $.trim($('input[name="search_username"]').val()),
                date_from : $('input[name="date_from"]').val(),
                date_to : $('input[name="date_to"]').val(),
            });
        },
        reload : function () {
            $('#user').datagrid('reload');
        },
        add : function () {
            $('#user_add').dialog('open');
            $('input[name="username"]').focus();
        },
        edit : function () {
            var rows = $('#user').datagrid('getSelections');
            if (rows.length > 1) {
                $.messager.alert('警告操作', '编辑记录只能选定一条数据！', 'warning');
            } else if (rows.length == 1) {
                $('#user_edit').dialog('open');
                $.ajax({
                    url : UU['APP_PATH'] + 'user/getUser',
                    type : 'POST',
                    data : {
                        id : rows[0].id,
                    },
                    beforeSend : function () {
                        $.messager.progress({
                            text : '正在获取信息...',
                        });
                    },
                    success : function(data, response, status) {
                        if (data) {
                            $('#user_edit').form('load', {
                                edit_id : data.id,
                                edit_username : data.username,
                                edit_email : data.email,
                                edit_nick_name:data.nick_name,
                                edit_phone:data.phone,
                            }).dialog('open');
                            $("input[name='edit_sex'][value='" + data.sex + "']").attr("checked", true);


                        }
                        $.messager.progress('close');
                    },
                });
            } else if (rows.length == 0) {
                $.messager.alert('警告操作', '编辑记录必须选定一条数据！', 'warning');
            }
        },
    };

});